﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EntitiesLayer
{

    public sealed class Musculos : IEntity
    {
        private readonly int idMusculo;
        public int Id
        {
            get { return idMusculo; }

        }
        private readonly string nombre;
        public string Nombre
        {
            get { return nombre; }
        }
        private readonly TipoMusculo tipo;
        public TipoMusculo Tipo
        {
            get { return tipo; }
        }
        private readonly Ubicacion ubicacion;
        public Ubicacion Ubicacion
        {
            get { return ubicacion; }
        }

        public Musculos( string nombre ,TipoMusculo tipo, Ubicacion ubicacion, int idMusculo=0
        )
        {


            if (nombre== null || nombre.Equals(""))
                throw new ArgumentException("El nombre del musculo no es valido");   



            this.nombre = nombre;
            this.tipo = tipo;
            this.ubicacion = ubicacion;
            this.idMusculo = idMusculo;
        }

        public Musculos(int idMusculo)
            : this("Anonimo", TipoMusculo.Liso, Ubicacion.Gluteos, idMusculo) { }
        public override string ToString()
        {
            return String.Format("id: {0} \nnombre: {1} \ntipo: {2} \nubicacion: {3}", Id, Nombre, Tipo, Ubicacion);
        }

        public Musculos cambiarNombre(string nombre) {

            return new Musculos(nombre, Tipo, Ubicacion, Id);
        }

        public Musculos cambiarUbicacion(Ubicacion ubicacion) {

            return new Musculos(Nombre, Tipo, ubicacion, Id);
        }

        public Musculos cambiarTipo(TipoMusculo tipo)
        {
            return new Musculos(Nombre, tipo, Ubicacion, Id);
        }

    }

}
public enum Ubicacion
{
    Brazos = 1,
    Piernas = 2,
    Abdomen = 3,
    Espalda = 4,
    Gluteos = 5
}

public enum TipoMusculo
{

    Esqueletico = 1,
    Cardiaco = 2,
    Liso = 3
}